package com.ourteam.product.model.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 IRKT 2017
 * Auto Generate Date : 2017-11-17 11:01:09
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductModelCodeTemplateDAOQueryBean extends BaseQueryBean {
    public ProductModelCodeTemplateDAOQueryBean() {
        super();
    }

    public ProductModelCodeTemplateDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductModelCodeTemplateDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.Id, "id");
        }
    }

    public void addGenerateCodeTypeSelectProperty() {
        addGenerateCodeTypeSelectProperty("generateCodeType");
    }

    public void addGenerateCodeTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.GenerateCodeType,
                aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.GenerateCodeType,
                "generateCodeType");
        }
    }

    public void addTargetTypeSelectProperty() {
        addTargetTypeSelectProperty("targetType");
    }

    public void addTargetTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.TargetType, aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.TargetType,
                "targetType");
        }
    }

    public void addTemplateNameSelectProperty() {
        addTemplateNameSelectProperty("templateName");
    }

    public void addTemplateNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.TemplateName, aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.TemplateName,
                "templateName");
        }
    }

    public void addFileNameTemplateSelectProperty() {
        addFileNameTemplateSelectProperty("fileNameTemplate");
    }

    public void addFileNameTemplateSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.FileNameTemplate,
                aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.FileNameTemplate,
                "fileNameTemplate");
        }
    }

    public void addFileTypeSelectProperty() {
        addFileTypeSelectProperty("fileType");
    }

    public void addFileTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.FileType, aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.FileType, "fileType");
        }
    }

    public void addFileContentTemplateSelectProperty() {
        addFileContentTemplateSelectProperty("fileContentTemplate");
    }

    public void addFileContentTemplateSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.FileContentTemplate,
                aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.FileContentTemplate,
                "fileContentTemplate");
        }
    }

    public void addCanOverWriteSelectProperty() {
        addCanOverWriteSelectProperty("canOverWrite");
    }

    public void addCanOverWriteSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.CanOverWrite, aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.CanOverWrite,
                "canOverWrite");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.Remarks, "remarks");
        }
    }

    public void addInputObjectTypeSelectProperty() {
        addInputObjectTypeSelectProperty("inputObjectType");
    }

    public void addInputObjectTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.InputObjectType,
                aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.InputObjectType,
                "inputObjectType");
        }
    }

    public void addFileOutputPathSelectProperty() {
        addFileOutputPathSelectProperty("fileOutputPath");
    }

    public void addFileOutputPathSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.FileOutputPath,
                aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.FileOutputPath,
                "fileOutputPath");
        }
    }

    public void addTemplateVersionSelectProperty() {
        addTemplateVersionSelectProperty("templateVersion");
    }

    public void addTemplateVersionSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.TemplateVersion,
                aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.TemplateVersion,
                "templateVersion");
        }
    }

    public void addLastModifyTimeSelectProperty() {
        addLastModifyTimeSelectProperty("lastModifyTime");
    }

    public void addLastModifyTimeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.LastModifyTime,
                aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.LastModifyTime,
                "lastModifyTime");
        }
    }

    public void addLastMofiyUserSelectProperty() {
        addLastMofiyUserSelectProperty("lastMofiyUser");
    }

    public void addLastMofiyUserSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.LastMofiyUser, aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.LastMofiyUser,
                "lastMofiyUser");
        }
    }

    public void addTemplateCodeSelectProperty() {
        addTemplateCodeSelectProperty("templateCode");
    }

    public void addTemplateCodeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductModelCodeTemplateDAO.TemplateCode, aAlias);
        } else {
            addSelectProperty(IProductModelCodeTemplateDAO.TemplateCode,
                "templateCode");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addGenerateCodeTypeSelectProperty();

        addTargetTypeSelectProperty();

        addTemplateNameSelectProperty();

        addFileNameTemplateSelectProperty();

        addFileTypeSelectProperty();

        addFileContentTemplateSelectProperty();

        addCanOverWriteSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addInputObjectTypeSelectProperty();

        addFileOutputPathSelectProperty();

        addTemplateVersionSelectProperty();

        addLastModifyTimeSelectProperty();

        addLastMofiyUserSelectProperty();

        addTemplateCodeSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductModelCodeTemplateDAOQueryBean> {
        protected Criteria(ProductModelCodeTemplateDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.Id + " is not null AND " +
                IProductModelCodeTemplateDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.Id +
                " is null OR " + IProductModelCodeTemplateDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " is null OR " +
                IProductModelCodeTemplateDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Id + " in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Id + " not in",
                    values, "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Id + " in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Id + " not in",
                    values, "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " not between",
                value1, value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelCodeTemplateDAO.Id + " not between",
                value1, value2, "id");

            return this;
        }

        public Criteria andGenerateCodeTypeIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " is null");

            return this;
        }

        public Criteria andGenerateCodeTypeIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " is not null");

            return this;
        }

        public Criteria andGenerateCodeTypeIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " is not null AND " +
                IProductModelCodeTemplateDAO.GenerateCodeType + " <> ''");

            return this;
        }

        public Criteria andGenerateCodeTypeIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.GenerateCodeType +
                " is null OR " + IProductModelCodeTemplateDAO.GenerateCodeType +
                " = '')");

            return this;
        }

        public Criteria andGenerateCodeTypeEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType + " = ",
                value, "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.GenerateCodeType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andGenerateCodeTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andGenerateCodeTypeNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType + " <>",
                value, "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " is null OR " + IProductModelCodeTemplateDAO.GenerateCodeType +
                " <>", value, "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.GenerateCodeType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andGenerateCodeTypeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andGenerateCodeTypeGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType + " >",
                value, "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.GenerateCodeType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andGenerateCodeTypeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andGenerateCodeTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType + " >=",
                value, "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.GenerateCodeType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andGenerateCodeTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andGenerateCodeTypeLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType + " <",
                value, "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.GenerateCodeType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andGenerateCodeTypeLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andGenerateCodeTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType + " <=",
                value, "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.GenerateCodeType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andGenerateCodeTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andGenerateCodeTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " like", buffer.toString(), "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " not like", buffer.toString(), "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andGenerateCodeTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                    " in", values, "generateCodeType");

                return this;
            }
        }

        public Criteria andGenerateCodeTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andGenerateCodeTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                    " not in", values, "generateCodeType");

                return this;
            }
        }

        public Criteria andGenerateCodeTypeIn(String[] values) {
            if (values.length == 1) {
                return andGenerateCodeTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                    " in", Arrays.asList(values), "generateCodeType");

                return this;
            }
        }

        public Criteria andGenerateCodeTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andGenerateCodeTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                    " not in", Arrays.asList(values), "generateCodeType");

                return this;
            }
        }

        public Criteria andGenerateCodeTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andGenerateCodeTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andGenerateCodeTypeBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " between", value1, value2, "generateCodeType");

            return this;
        }

        public Criteria andGenerateCodeTypeNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelCodeTemplateDAO.GenerateCodeType +
                " not between", value1, value2, "generateCodeType");

            return this;
        }

        public Criteria andTargetTypeIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " is null");

            return this;
        }

        public Criteria andTargetTypeIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.TargetType +
                " is not null");

            return this;
        }

        public Criteria andTargetTypeIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.TargetType +
                " is not null AND " + IProductModelCodeTemplateDAO.TargetType +
                " <> ''");

            return this;
        }

        public Criteria andTargetTypeIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.TargetType +
                " is null OR " + IProductModelCodeTemplateDAO.TargetType +
                " = '')");

            return this;
        }

        public Criteria andTargetTypeEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " = ",
                value, "targetType");

            return this;
        }

        public Criteria andTargetTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TargetType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTargetTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTargetTypeNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " <>",
                value, "targetType");

            return this;
        }

        public Criteria andTargetTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType +
                " is null OR " + IProductModelCodeTemplateDAO.TargetType +
                " <>", value, "targetType");

            return this;
        }

        public Criteria andTargetTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TargetType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTargetTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTargetTypeGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " >", value,
                "targetType");

            return this;
        }

        public Criteria andTargetTypeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TargetType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTargetTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTargetTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " >=",
                value, "targetType");

            return this;
        }

        public Criteria andTargetTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TargetType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTargetTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTargetTypeLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " <", value,
                "targetType");

            return this;
        }

        public Criteria andTargetTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TargetType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTargetTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTargetTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " <=",
                value, "targetType");

            return this;
        }

        public Criteria andTargetTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TargetType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTargetTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTargetTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " like",
                buffer.toString(), "targetType");

            return this;
        }

        public Criteria andTargetTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " not like",
                buffer.toString(), "targetType");

            return this;
        }

        public Criteria andTargetTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andTargetTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TargetType + " in",
                    values, "targetType");

                return this;
            }
        }

        public Criteria andTargetTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andTargetTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TargetType +
                    " not in", values, "targetType");

                return this;
            }
        }

        public Criteria andTargetTypeIn(String[] values) {
            if (values.length == 1) {
                return andTargetTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TargetType + " in",
                    Arrays.asList(values), "targetType");

                return this;
            }
        }

        public Criteria andTargetTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andTargetTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TargetType +
                    " not in", Arrays.asList(values), "targetType");

                return this;
            }
        }

        public Criteria andTargetTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTargetTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTargetTypeBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType + " between",
                value1, value2, "targetType");

            return this;
        }

        public Criteria andTargetTypeNotBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.TargetType +
                " not between", value1, value2, "targetType");

            return this;
        }

        public Criteria andTemplateNameIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                " is null");

            return this;
        }

        public Criteria andTemplateNameIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                " is not null");

            return this;
        }

        public Criteria andTemplateNameIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                " is not null AND " +
                IProductModelCodeTemplateDAO.TemplateName + " <> ''");

            return this;
        }

        public Criteria andTemplateNameIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.TemplateName +
                " is null OR " + IProductModelCodeTemplateDAO.TemplateName +
                " = '')");

            return this;
        }

        public Criteria andTemplateNameEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " = ",
                value, "templateName");

            return this;
        }

        public Criteria andTemplateNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateNameNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " <>",
                value, "templateName");

            return this;
        }

        public Criteria andTemplateNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                " is null OR " + IProductModelCodeTemplateDAO.TemplateName +
                " <>", value, "templateName");

            return this;
        }

        public Criteria andTemplateNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateNameGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " >",
                value, "templateName");

            return this;
        }

        public Criteria andTemplateNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " >=",
                value, "templateName");

            return this;
        }

        public Criteria andTemplateNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateNameLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " <",
                value, "templateName");

            return this;
        }

        public Criteria andTemplateNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateNameLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " <=",
                value, "templateName");

            return this;
        }

        public Criteria andTemplateNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " like",
                buffer.toString(), "templateName");

            return this;
        }

        public Criteria andTemplateNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                " not like", buffer.toString(), "templateName");

            return this;
        }

        public Criteria andTemplateNameIn(List<String> values) {
            if (values.size() == 1) {
                return andTemplateNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateName + " in",
                    values, "templateName");

                return this;
            }
        }

        public Criteria andTemplateNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andTemplateNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                    " not in", values, "templateName");

                return this;
            }
        }

        public Criteria andTemplateNameIn(String[] values) {
            if (values.length == 1) {
                return andTemplateNameEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateName + " in",
                    Arrays.asList(values), "templateName");

                return this;
            }
        }

        public Criteria andTemplateNameNotIn(String[] values) {
            if (values.length == 1) {
                return andTemplateNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                    " not in", Arrays.asList(values), "templateName");

                return this;
            }
        }

        public Criteria andTemplateNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateNameBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                " between", value1, value2, "templateName");

            return this;
        }

        public Criteria andTemplateNameNotBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateName +
                " not between", value1, value2, "templateName");

            return this;
        }

        public Criteria andFileNameTemplateIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " is null");

            return this;
        }

        public Criteria andFileNameTemplateIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " is not null");

            return this;
        }

        public Criteria andFileNameTemplateIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " is not null AND " +
                IProductModelCodeTemplateDAO.FileNameTemplate + " <> ''");

            return this;
        }

        public Criteria andFileNameTemplateIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.FileNameTemplate +
                " is null OR " + IProductModelCodeTemplateDAO.FileNameTemplate +
                " = '')");

            return this;
        }

        public Criteria andFileNameTemplateEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate + " = ",
                value, "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileNameTemplate);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileNameTemplateEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileNameTemplateNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate + " <>",
                value, "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " is null OR " + IProductModelCodeTemplateDAO.FileNameTemplate +
                " <>", value, "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileNameTemplate);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileNameTemplateNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileNameTemplateGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate + " >",
                value, "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileNameTemplate);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileNameTemplateGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileNameTemplateGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate + " >=",
                value, "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileNameTemplate);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileNameTemplateGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileNameTemplateLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate + " <",
                value, "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileNameTemplate);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileNameTemplateLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileNameTemplateLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate + " <=",
                value, "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileNameTemplate);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileNameTemplateLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileNameTemplateLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " like", buffer.toString(), "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " not like", buffer.toString(), "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateIn(List<String> values) {
            if (values.size() == 1) {
                return andFileNameTemplateEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                    " in", values, "fileNameTemplate");

                return this;
            }
        }

        public Criteria andFileNameTemplateNotIn(List<String> values) {
            if (values.size() == 1) {
                return andFileNameTemplateNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                    " not in", values, "fileNameTemplate");

                return this;
            }
        }

        public Criteria andFileNameTemplateIn(String[] values) {
            if (values.length == 1) {
                return andFileNameTemplateEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                    " in", Arrays.asList(values), "fileNameTemplate");

                return this;
            }
        }

        public Criteria andFileNameTemplateNotIn(String[] values) {
            if (values.length == 1) {
                return andFileNameTemplateNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                    " not in", Arrays.asList(values), "fileNameTemplate");

                return this;
            }
        }

        public Criteria andFileNameTemplateIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileNameTemplateNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileNameTemplateBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " between", value1, value2, "fileNameTemplate");

            return this;
        }

        public Criteria andFileNameTemplateNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelCodeTemplateDAO.FileNameTemplate +
                " not between", value1, value2, "fileNameTemplate");

            return this;
        }

        public Criteria andFileTypeIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " is null");

            return this;
        }

        public Criteria andFileTypeIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.FileType +
                " is not null");

            return this;
        }

        public Criteria andFileTypeIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.FileType +
                " is not null AND " + IProductModelCodeTemplateDAO.FileType +
                " <> ''");

            return this;
        }

        public Criteria andFileTypeIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.FileType +
                " is null OR " + IProductModelCodeTemplateDAO.FileType +
                " = '')");

            return this;
        }

        public Criteria andFileTypeEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " = ", value,
                "fileType");

            return this;
        }

        public Criteria andFileTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileTypeNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " <>", value,
                "fileType");

            return this;
        }

        public Criteria andFileTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileType +
                " is null OR " + IProductModelCodeTemplateDAO.FileType + " <>",
                value, "fileType");

            return this;
        }

        public Criteria andFileTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileTypeGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " >", value,
                "fileType");

            return this;
        }

        public Criteria andFileTypeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " >=", value,
                "fileType");

            return this;
        }

        public Criteria andFileTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileTypeLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " <", value,
                "fileType");

            return this;
        }

        public Criteria andFileTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " <=", value,
                "fileType");

            return this;
        }

        public Criteria andFileTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.FileType + " like",
                buffer.toString(), "fileType");

            return this;
        }

        public Criteria andFileTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.FileType + " not like",
                buffer.toString(), "fileType");

            return this;
        }

        public Criteria andFileTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andFileTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileType + " in",
                    values, "fileType");

                return this;
            }
        }

        public Criteria andFileTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andFileTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileType + " not in",
                    values, "fileType");

                return this;
            }
        }

        public Criteria andFileTypeIn(String[] values) {
            if (values.length == 1) {
                return andFileTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileType + " in",
                    Arrays.asList(values), "fileType");

                return this;
            }
        }

        public Criteria andFileTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andFileTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileType + " not in",
                    Arrays.asList(values), "fileType");

                return this;
            }
        }

        public Criteria andFileTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileTypeBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.FileType + " between",
                value1, value2, "fileType");

            return this;
        }

        public Criteria andFileTypeNotBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.FileType +
                " not between", value1, value2, "fileType");

            return this;
        }

        public Criteria andFileContentTemplateIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " is null");

            return this;
        }

        public Criteria andFileContentTemplateIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " is not null");

            return this;
        }

        public Criteria andFileContentTemplateIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " is not null AND " +
                IProductModelCodeTemplateDAO.FileContentTemplate + " <> ''");

            return this;
        }

        public Criteria andFileContentTemplateIsEmpty() {
            addCriterion("(" +
                IProductModelCodeTemplateDAO.FileContentTemplate +
                " is null OR " +
                IProductModelCodeTemplateDAO.FileContentTemplate + " = '')");

            return this;
        }

        public Criteria andFileContentTemplateEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " = ", value, "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileContentTemplate);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileContentTemplateEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileContentTemplateNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " <>", value, "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " is null OR " +
                IProductModelCodeTemplateDAO.FileContentTemplate + " <>",
                value, "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileContentTemplate);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileContentTemplateNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileContentTemplateGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " >", value, "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileContentTemplate);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileContentTemplateGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileContentTemplateGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " >=", value, "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileContentTemplate);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileContentTemplateGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileContentTemplateLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " <", value, "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileContentTemplate);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileContentTemplateLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileContentTemplateLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " <=", value, "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileContentTemplate);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileContentTemplateLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileContentTemplateLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " like", buffer.toString(), "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " not like", buffer.toString(), "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateIn(List<String> values) {
            if (values.size() == 1) {
                return andFileContentTemplateEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                    " in", values, "fileContentTemplate");

                return this;
            }
        }

        public Criteria andFileContentTemplateNotIn(List<String> values) {
            if (values.size() == 1) {
                return andFileContentTemplateNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                    " not in", values, "fileContentTemplate");

                return this;
            }
        }

        public Criteria andFileContentTemplateIn(String[] values) {
            if (values.length == 1) {
                return andFileContentTemplateEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                    " in", Arrays.asList(values), "fileContentTemplate");

                return this;
            }
        }

        public Criteria andFileContentTemplateNotIn(String[] values) {
            if (values.length == 1) {
                return andFileContentTemplateNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                    " not in", Arrays.asList(values), "fileContentTemplate");

                return this;
            }
        }

        public Criteria andFileContentTemplateIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileContentTemplateNotIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileContentTemplateBetween(String value1,
            String value2) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " between", value1, value2, "fileContentTemplate");

            return this;
        }

        public Criteria andFileContentTemplateNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelCodeTemplateDAO.FileContentTemplate +
                " not between", value1, value2, "fileContentTemplate");

            return this;
        }

        public Criteria andCanOverWriteIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                " is null");

            return this;
        }

        public Criteria andCanOverWriteIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                " is not null");

            return this;
        }

        public Criteria andCanOverWriteIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                " is not null AND " +
                IProductModelCodeTemplateDAO.CanOverWrite + " <> ''");

            return this;
        }

        public Criteria andCanOverWriteIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.CanOverWrite +
                " is null OR " + IProductModelCodeTemplateDAO.CanOverWrite +
                " = '')");

            return this;
        }

        public Criteria andCanOverWriteEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " = ",
                value, "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.CanOverWrite);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCanOverWriteEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCanOverWriteNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " <>",
                value, "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                " is null OR " + IProductModelCodeTemplateDAO.CanOverWrite +
                " <>", value, "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.CanOverWrite);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCanOverWriteNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCanOverWriteGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " >",
                value, "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.CanOverWrite);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCanOverWriteGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCanOverWriteGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " >=",
                value, "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.CanOverWrite);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCanOverWriteGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCanOverWriteLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " <",
                value, "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.CanOverWrite);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCanOverWriteLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCanOverWriteLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " <=",
                value, "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.CanOverWrite);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andCanOverWriteLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCanOverWriteLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " like",
                buffer.toString(), "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                " not like", buffer.toString(), "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteIn(List<String> values) {
            if (values.size() == 1) {
                return andCanOverWriteEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " in",
                    values, "canOverWrite");

                return this;
            }
        }

        public Criteria andCanOverWriteNotIn(List<String> values) {
            if (values.size() == 1) {
                return andCanOverWriteNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                    " not in", values, "canOverWrite");

                return this;
            }
        }

        public Criteria andCanOverWriteIn(String[] values) {
            if (values.length == 1) {
                return andCanOverWriteEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " in",
                    Arrays.asList(values), "canOverWrite");

                return this;
            }
        }

        public Criteria andCanOverWriteNotIn(String[] values) {
            if (values.length == 1) {
                return andCanOverWriteNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                    " not in", Arrays.asList(values), "canOverWrite");

                return this;
            }
        }

        public Criteria andCanOverWriteIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andCanOverWriteNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andCanOverWriteBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                " between", value1, value2, "canOverWrite");

            return this;
        }

        public Criteria andCanOverWriteNotBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.CanOverWrite +
                " not between", value1, value2, "canOverWrite");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.Status +
                " is not null AND " + IProductModelCodeTemplateDAO.Status +
                " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.Status +
                " is null OR " + IProductModelCodeTemplateDAO.Status +
                " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " = ", value,
                "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " <>", value,
                "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " is null OR " +
                IProductModelCodeTemplateDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " >", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " >=", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " <", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " <=", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Status + " in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Status + " not in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " between",
                value1, value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.Remarks +
                " is not null AND " + IProductModelCodeTemplateDAO.Remarks +
                " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.Remarks +
                " is null OR " + IProductModelCodeTemplateDAO.Remarks +
                " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " is null OR " +
                IProductModelCodeTemplateDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " >", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " <", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Remarks + " in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.Remarks + " not between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andInputObjectTypeIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                " is null");

            return this;
        }

        public Criteria andInputObjectTypeIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                " is not null");

            return this;
        }

        public Criteria andInputObjectTypeIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                " is not null AND " +
                IProductModelCodeTemplateDAO.InputObjectType + " <> ''");

            return this;
        }

        public Criteria andInputObjectTypeIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.InputObjectType +
                " is null OR " + IProductModelCodeTemplateDAO.InputObjectType +
                " = '')");

            return this;
        }

        public Criteria andInputObjectTypeEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " = ",
                value, "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.InputObjectType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andInputObjectTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andInputObjectTypeNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " <>",
                value, "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                " is null OR " + IProductModelCodeTemplateDAO.InputObjectType +
                " <>", value, "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.InputObjectType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andInputObjectTypeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andInputObjectTypeGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " >",
                value, "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.InputObjectType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andInputObjectTypeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andInputObjectTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " >=",
                value, "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.InputObjectType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andInputObjectTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andInputObjectTypeLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " <",
                value, "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.InputObjectType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andInputObjectTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andInputObjectTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " <=",
                value, "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.InputObjectType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andInputObjectTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andInputObjectTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                " like", buffer.toString(), "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                " not like", buffer.toString(), "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andInputObjectTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                    " in", values, "inputObjectType");

                return this;
            }
        }

        public Criteria andInputObjectTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andInputObjectTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                    " not in", values, "inputObjectType");

                return this;
            }
        }

        public Criteria andInputObjectTypeIn(String[] values) {
            if (values.length == 1) {
                return andInputObjectTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                    " in", Arrays.asList(values), "inputObjectType");

                return this;
            }
        }

        public Criteria andInputObjectTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andInputObjectTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                    " not in", Arrays.asList(values), "inputObjectType");

                return this;
            }
        }

        public Criteria andInputObjectTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andInputObjectTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andInputObjectTypeBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                " between", value1, value2, "inputObjectType");

            return this;
        }

        public Criteria andInputObjectTypeNotBetween(String value1,
            String value2) {
            addCriterion(IProductModelCodeTemplateDAO.InputObjectType +
                " not between", value1, value2, "inputObjectType");

            return this;
        }

        public Criteria andFileOutputPathIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                " is null");

            return this;
        }

        public Criteria andFileOutputPathIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                " is not null");

            return this;
        }

        public Criteria andFileOutputPathIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                " is not null AND " +
                IProductModelCodeTemplateDAO.FileOutputPath + " <> ''");

            return this;
        }

        public Criteria andFileOutputPathIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.FileOutputPath +
                " is null OR " + IProductModelCodeTemplateDAO.FileOutputPath +
                " = '')");

            return this;
        }

        public Criteria andFileOutputPathEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " = ",
                value, "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileOutputPath);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileOutputPathEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileOutputPathNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " <>",
                value, "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                " is null OR " + IProductModelCodeTemplateDAO.FileOutputPath +
                " <>", value, "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileOutputPath);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileOutputPathNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileOutputPathGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " >",
                value, "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileOutputPath);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileOutputPathGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileOutputPathGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " >=",
                value, "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileOutputPath);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileOutputPathGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileOutputPathLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " <",
                value, "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileOutputPath);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileOutputPathLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileOutputPathLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " <=",
                value, "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.FileOutputPath);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andFileOutputPathLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileOutputPathLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " like",
                buffer.toString(), "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                " not like", buffer.toString(), "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathIn(List<String> values) {
            if (values.size() == 1) {
                return andFileOutputPathEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                    " in", values, "fileOutputPath");

                return this;
            }
        }

        public Criteria andFileOutputPathNotIn(List<String> values) {
            if (values.size() == 1) {
                return andFileOutputPathNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                    " not in", values, "fileOutputPath");

                return this;
            }
        }

        public Criteria andFileOutputPathIn(String[] values) {
            if (values.length == 1) {
                return andFileOutputPathEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                    " in", Arrays.asList(values), "fileOutputPath");

                return this;
            }
        }

        public Criteria andFileOutputPathNotIn(String[] values) {
            if (values.length == 1) {
                return andFileOutputPathNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                    " not in", Arrays.asList(values), "fileOutputPath");

                return this;
            }
        }

        public Criteria andFileOutputPathIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andFileOutputPathNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andFileOutputPathBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                " between", value1, value2, "fileOutputPath");

            return this;
        }

        public Criteria andFileOutputPathNotBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.FileOutputPath +
                " not between", value1, value2, "fileOutputPath");

            return this;
        }

        public Criteria andTemplateVersionIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                " is null");

            return this;
        }

        public Criteria andTemplateVersionIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                " is not null");

            return this;
        }

        public Criteria andTemplateVersionIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                " is not null AND " +
                IProductModelCodeTemplateDAO.TemplateVersion + " <> ''");

            return this;
        }

        public Criteria andTemplateVersionIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.TemplateVersion +
                " is null OR " + IProductModelCodeTemplateDAO.TemplateVersion +
                " = '')");

            return this;
        }

        public Criteria andTemplateVersionEqualTo(long value) {
            return andTemplateVersionEqualTo(Long.valueOf(value));
        }

        public Criteria andTemplateVersionEqualTo(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " = ",
                value, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateVersion);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateVersionEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateVersionNotEqualTo(long value) {
            return andTemplateVersionNotEqualTo(Long.valueOf(value));
        }

        public Criteria andTemplateVersionNotEqualTo(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " <>",
                value, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionNotEqualToOrIsNull(long value) {
            return andTemplateVersionNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andTemplateVersionNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                " is null OR " + IProductModelCodeTemplateDAO.TemplateVersion +
                " <>", value, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateVersion);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateVersionNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateVersionGreaterThan(long value) {
            return andTemplateVersionGreaterThan(Long.valueOf(value));
        }

        public Criteria andTemplateVersionGreaterThan(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " >",
                value, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateVersion);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateVersionGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateVersionGreaterThanOrEqualTo(long value) {
            return andTemplateVersionGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andTemplateVersionGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " >=",
                value, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateVersion);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateVersionGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateVersionLessThan(long value) {
            return andTemplateVersionLessThan(Long.valueOf(value));
        }

        public Criteria andTemplateVersionLessThan(java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " <",
                value, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateVersion);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateVersionLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateVersionLessThanOrEqualTo(long value) {
            return andTemplateVersionLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andTemplateVersionLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " <=",
                value, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateVersion);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateVersionLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateVersionIn(long[] values) {
            if (values.length == 1) {
                return andTemplateVersionEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                    " in", values, "templateVersion");

                return this;
            }
        }

        public Criteria andTemplateVersionNotIn(long[] values) {
            if (values.length == 1) {
                return andTemplateVersionNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                    " not in", values, "templateVersion");

                return this;
            }
        }

        public Criteria andTemplateVersionIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andTemplateVersionEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                    " in", values, "templateVersion");

                return this;
            }
        }

        public Criteria andTemplateVersionNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andTemplateVersionNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                    " not in", values, "templateVersion");

                return this;
            }
        }

        public Criteria andTemplateVersionIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andTemplateVersionEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                    " in", Arrays.asList(values), "templateVersion");

                return this;
            }
        }

        public Criteria andTemplateVersionNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andTemplateVersionNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                    " not in", Arrays.asList(values), "templateVersion");

                return this;
            }
        }

        public Criteria andTemplateVersionIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateVersionNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateVersionBetween(long value1, long value2) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                " between", value1, value2, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                " between", value1, value2, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionNotBetween(long value1, long value2) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                " not between", value1, value2, "templateVersion");

            return this;
        }

        public Criteria andTemplateVersionNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateVersion +
                " not between", value1, value2, "templateVersion");

            return this;
        }

        public Criteria andLastModifyTimeIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime +
                " is null");

            return this;
        }

        public Criteria andLastModifyTimeIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime +
                " is not null");

            return this;
        }

        public Criteria andLastModifyTimeIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime +
                " is not null AND " +
                IProductModelCodeTemplateDAO.LastModifyTime + " <> ''");

            return this;
        }

        public Criteria andLastModifyTimeIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.LastModifyTime +
                " is null OR " + IProductModelCodeTemplateDAO.LastModifyTime +
                " = '')");

            return this;
        }

        public Criteria andLastModifyTimeEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                " = ", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastModifyTime);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeNotEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                " <>", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeNotEqualToOrIsNull(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                " is null OR " + IProductModelCodeTemplateDAO.LastModifyTime +
                " <>", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastModifyTime);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeGreaterThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                " >", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastModifyTime);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualTo(
            java.util.Date value) {
            addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                " >=", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastModifyTime);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeLessThan(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                " <", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastModifyTime);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualTo(java.util.Date value) {
            addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                " <=", value, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastModifyTime);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastModifyTimeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastModifyTimeEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                    " in", values, "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeNotIn(List<java.util.Date> values) {
            if (values.size() == 1) {
                return andLastModifyTimeNotEqualTo(values.get(0));
            } else {
                addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                    " not in", values, "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastModifyTimeEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                    " in", Arrays.asList(values), "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeNotIn(java.util.Date[] values) {
            if (values.length == 1) {
                return andLastModifyTimeNotEqualTo(values[0]);
            } else {
                addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                    " not in", Arrays.asList(values), "lastModifyTime");

                return this;
            }
        }

        public Criteria andLastModifyTimeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastModifyTime +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andLastModifyTimeBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                " between", value1, value2, "lastModifyTime");

            return this;
        }

        public Criteria andLastModifyTimeNotBetween(java.util.Date value1,
            java.util.Date value2) {
            addCriterionForJDBCDate(IProductModelCodeTemplateDAO.LastModifyTime +
                " not between", value1, value2, "lastModifyTime");

            return this;
        }

        public Criteria andLastMofiyUserIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                " is null");

            return this;
        }

        public Criteria andLastMofiyUserIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                " is not null");

            return this;
        }

        public Criteria andLastMofiyUserIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                " is not null AND " +
                IProductModelCodeTemplateDAO.LastMofiyUser + " <> ''");

            return this;
        }

        public Criteria andLastMofiyUserIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.LastMofiyUser +
                " is null OR " + IProductModelCodeTemplateDAO.LastMofiyUser +
                " = '')");

            return this;
        }

        public Criteria andLastMofiyUserEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " = ",
                value, "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastMofiyUser);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastMofiyUserEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastMofiyUserNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " <>",
                value, "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                " is null OR " + IProductModelCodeTemplateDAO.LastMofiyUser +
                " <>", value, "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastMofiyUser);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastMofiyUserNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastMofiyUserGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " >",
                value, "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastMofiyUser);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastMofiyUserGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastMofiyUserGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " >=",
                value, "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastMofiyUser);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastMofiyUserGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastMofiyUserLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " <",
                value, "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastMofiyUser);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastMofiyUserLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastMofiyUserLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " <=",
                value, "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.LastMofiyUser);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andLastMofiyUserLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastMofiyUserLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " like",
                buffer.toString(), "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                " not like", buffer.toString(), "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserIn(List<String> values) {
            if (values.size() == 1) {
                return andLastMofiyUserEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                    " in", values, "lastMofiyUser");

                return this;
            }
        }

        public Criteria andLastMofiyUserNotIn(List<String> values) {
            if (values.size() == 1) {
                return andLastMofiyUserNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                    " not in", values, "lastMofiyUser");

                return this;
            }
        }

        public Criteria andLastMofiyUserIn(String[] values) {
            if (values.length == 1) {
                return andLastMofiyUserEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                    " in", Arrays.asList(values), "lastMofiyUser");

                return this;
            }
        }

        public Criteria andLastMofiyUserNotIn(String[] values) {
            if (values.length == 1) {
                return andLastMofiyUserNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                    " not in", Arrays.asList(values), "lastMofiyUser");

                return this;
            }
        }

        public Criteria andLastMofiyUserIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andLastMofiyUserNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andLastMofiyUserBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                " between", value1, value2, "lastMofiyUser");

            return this;
        }

        public Criteria andLastMofiyUserNotBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.LastMofiyUser +
                " not between", value1, value2, "lastMofiyUser");

            return this;
        }

        public Criteria andTemplateCodeIsNull() {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                " is null");

            return this;
        }

        public Criteria andTemplateCodeIsNotNull() {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                " is not null");

            return this;
        }

        public Criteria andTemplateCodeIsNotEmpty() {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                " is not null AND " +
                IProductModelCodeTemplateDAO.TemplateCode + " <> ''");

            return this;
        }

        public Criteria andTemplateCodeIsEmpty() {
            addCriterion("(" + IProductModelCodeTemplateDAO.TemplateCode +
                " is null OR " + IProductModelCodeTemplateDAO.TemplateCode +
                " = '')");

            return this;
        }

        public Criteria andTemplateCodeEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " = ",
                value, "templateCode");

            return this;
        }

        public Criteria andTemplateCodeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateCode);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateCodeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateCodeNotEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " <>",
                value, "templateCode");

            return this;
        }

        public Criteria andTemplateCodeNotEqualToOrIsNull(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                " is null OR " + IProductModelCodeTemplateDAO.TemplateCode +
                " <>", value, "templateCode");

            return this;
        }

        public Criteria andTemplateCodeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateCode);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateCodeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateCodeGreaterThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " >",
                value, "templateCode");

            return this;
        }

        public Criteria andTemplateCodeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateCode);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateCodeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateCodeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " >=",
                value, "templateCode");

            return this;
        }

        public Criteria andTemplateCodeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateCode);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateCodeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateCodeLessThan(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " <",
                value, "templateCode");

            return this;
        }

        public Criteria andTemplateCodeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateCode);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateCodeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateCodeLessThanOrEqualTo(String value) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " <=",
                value, "templateCode");

            return this;
        }

        public Criteria andTemplateCodeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductModelCodeTemplateDAO.TemplateCode);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andTemplateCodeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateCodeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " like",
                buffer.toString(), "templateCode");

            return this;
        }

        public Criteria andTemplateCodeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                " not like", buffer.toString(), "templateCode");

            return this;
        }

        public Criteria andTemplateCodeIn(List<String> values) {
            if (values.size() == 1) {
                return andTemplateCodeEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " in",
                    values, "templateCode");

                return this;
            }
        }

        public Criteria andTemplateCodeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andTemplateCodeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                    " not in", values, "templateCode");

                return this;
            }
        }

        public Criteria andTemplateCodeIn(String[] values) {
            if (values.length == 1) {
                return andTemplateCodeEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " in",
                    Arrays.asList(values), "templateCode");

                return this;
            }
        }

        public Criteria andTemplateCodeNotIn(String[] values) {
            if (values.length == 1) {
                return andTemplateCodeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                    " not in", Arrays.asList(values), "templateCode");

                return this;
            }
        }

        public Criteria andTemplateCodeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateCodeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andTemplateCodeBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                " between", value1, value2, "templateCode");

            return this;
        }

        public Criteria andTemplateCodeNotBetween(String value1, String value2) {
            addCriterion(IProductModelCodeTemplateDAO.TemplateCode +
                " not between", value1, value2, "templateCode");

            return this;
        }
    }
}
